Determining influence across social networks

ABSTRACT

The disclosed embodiments provide a system that facilitates user interaction. During operation, the system obtains user data for a first user and a second user connected to the first user in a social network. Next, the system uses the user data to calculate one or more influence scores between the first and second users. The system then constructs an influence graph of a set of users comprising the first and second users by creating a first node representing the first user, creating a second node representing the second user, and using the one or more influence scores as edge weights of directed edges between the first and second nodes. Finally, the system uses the influence graph to facilitate interaction among the users.

BACKGROUND Related Art

The disclosed embodiments relate to social networks. More specifically,the disclosed embodiments relate to techniques for determining influenceacross social networks.

Social networks may be social structures containing nodes representingindividuals and/or organizations, as well as links between pairs ofnodes. The links may represent different types of relationships and/orlevels of social familiarity, including those of friends, acquaintances,family members, and/or professional contacts. Social networks may alsobe tracked and maintained on web-based social networking services, whichallow the individuals and/or organizations to share ideas, pictures,posts, activities, events, and/or interests with one another.

To use a social networking service, a user may create a profilecontaining basic, identifying, and/or demographic information for theuser. For example, the social networking service may allow the user toprovide a name, profile photo, location, contact information, and/orother information that may be used to identify and/or describe the user.The user may also establish connections and/or relationships with otherusers in the social networking service. For example, the user may addanother user as a “friend” if both the user and the other user approvethe “friend” connection in the social networking service. Along the samelines, the user may use an online professional network to maintainprofessional connections with other users with whom the user has workedand/or is interested in collaborating on future work.

In addition, social networks may have users with varying levels ofinfluence. For example, users with high levels of influence may includeleaders, contributors, celebrities, and/or other well-connected people.In turn, such users may facilitate the spreading of messages, ideas,and/or trends across the social networks; promote products or servicesto other users in the social networks; and/or otherwise shape thebehavior of the other users. Consequently, propagation of informationacross social networks may be facilitated by mechanisms for identifyingand connecting with influential users in the social networks.

However, existing techniques for determining influence in socialnetworks may be based on attributes of individual users. For example, amechanism for determining a user's level of influence may calculate aninfluence score for the user based on the user's activity and/orreactions to the user's activity on one or more social networkingservices. Such isolated, user-based influence measurements may limit theability to determine the effects of influence across social networks. Asa result, individual influence measurements may not ensure thatinformation from a set of influential users in a social network reachesall users in the social network.

Hence, use of social networks to propagate information may befacilitated by mechanisms for determining influence across users in thesocial networks.

SUMMARY

The disclosed embodiments provide a system that facilitates userinteraction. During operation, the system obtains user data for a firstuser and a second user connected to the first user in a social network.Next, the system uses the user data to calculate one or more influencescores between the first and second users. The system then constructs aninfluence graph of a set of users comprising the first and second usersby creating a first node representing the first user, creating a secondnode representing the second user, and using the one or more influencescores as edge weights of directed edges between the first and secondnodes. Finally, the system uses the influence graph to facilitateinteraction among the users.

In some embodiments, using the one or more influence scores tofacilitate interaction between the first and second users involvesidentifying a path through the influence graph, and using the path totarget one or more of the users on the path.

In some embodiments, using the user data to calculate one or moreinfluence scores between the first and second users involves:

-   -   (i) creating, from the user data, a first influence vector for        the first user and a second influence vector for the second        user;    -   (ii) calculating an angle between the first and second influence        vectors; and    -   (iii) calculating the one or more influence scores based on the        angle.

In some embodiments, the first and second influence vectors are activityvectors and/or profile vectors.

In some embodiments, the activity vector is associated with at least oneof a topic, a share, a post, a comment, a tag, a follow, and a like.

In some embodiments, the profile vector is associated with at least oneof an age, a location, an ethnicity, a language, an education, anoccupation, and a family status.

In some embodiments, calculating the one or more influence scores basedon the angle involves:

-   -   (i) calculating a first angle using the activity vectors;    -   (ii) calculating a second angle using the profile vectors; and    -   (iii) combining the first and second angles into an influence        score.

In some embodiments, calculating the one or more influence scores basedon the angle further involves normalizing at least one of the first andsecond angles prior to combining the first and second angles into theinfluence score.

In some embodiments, the one or more influence scores include a firstinfluence score representing a first level of influence of the firstuser on the second user and a second influence score representing asecond level of influence of the second user on the first user.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 shows a schematic of a system in accordance with the disclosedembodiments.

FIG. 2 shows an exemplary influence graph in accordance with thedisclosed embodiments.

FIG. 3 shows a flowchart illustrating the process of facilitating userinteraction in accordance with the disclosed embodiments.

FIG. 4 shows a flowchart illustrating the process of calculating a setof influence scores between a pair of users in accordance with thedisclosed embodiments.

FIG. 5 shows a computer system in accordance with the disclosedembodiments.

In the figures, like reference numerals refer to the same figureelements.

DETAILED DESCRIPTION

The following description is presented to enable any person skilled inthe art to make and use the embodiments, and is provided in the contextof a particular application and its requirements. Various modificationsto the disclosed embodiments will be readily apparent to those skilledin the art, and the general principles defined herein may be applied toother embodiments and applications without departing from the spirit andscope of the present disclosure. Thus, the present invention is notlimited to the embodiments shown, but is to be accorded the widest scopeconsistent with the principles and features disclosed herein.

The data structures and code described in this detailed description aretypically stored on a computer-readable storage medium, which may be anydevice or medium that can store code and/or data for use by a computersystem. The computer-readable storage medium includes, but is notlimited to, volatile memory, non-volatile memory, magnetic and opticalstorage devices such as disk drives, magnetic tape, CDs (compact discs),DVDs (digital versatile discs or digital video discs), or other mediacapable of storing code and/or data now known or later developed.

The methods and processes described in the detailed description sectioncan be embodied as code and/or data, which can be stored in acomputer-readable storage medium as described above. When a computersystem reads and executes the code and/or data stored on thecomputer-readable storage medium, the computer system performs themethods and processes embodied as data structures and code and storedwithin the computer-readable storage medium.

Furthermore, methods and processes described herein can be included inhardware modules or apparatus. These modules or apparatus may include,but are not limited to, an application-specific integrated circuit(ASIC) chip, a field-programmable gate array (FPGA), a dedicated orshared processor that executes a particular software module or a pieceof code at a particular time, and/or other programmable-logic devicesnow known or later developed. When the hardware modules or apparatus areactivated, they perform the methods and processes included within them.

The disclosed embodiments provide a method and system for facilitatinguser interaction. More specifically, the disclosed embodiments provide amethod and system for determining and leveraging user influence acrosssocial networks. As shown in FIG. 1, a set of users (e.g., user 1 124,user y 126, user 1 128, user z 130) may interact with one anotherthrough a set of social networks (e.g., social network 1 114, socialnetwork x 116). For example, a user may create user profiles on multipleweb-based social networking services. The user may also add one or morefriends, acquaintances, family members, professional connections, and/orother users with whom the user has a relationship as the user's contactsin the social networking services. The user may then interact with theother users by sharing posts, comments, likes, photos, videos, events,activities, articles, and/or messages with the other users.

Those skilled in the art will appreciate that different users may havedifferent levels of influence within and/or across social networks. Forexample, a user who is considered a leader, thought leader, contributor,celebrity, intelligent, experienced, reputable, and/or well-connectedmay have a higher degree of influence than a user who occupies less of aleadership role, is less famous, contributes less, and/or is perceivedto be less well-connected, intelligent, experienced, and/or reputable.In turn, highly influential users may be more effective at conveyingideas and/or messages across the social networks than less influentialusers.

In one or more embodiments, an interaction-management framework 102includes functionality to determine influence across social networks andfacilitate interaction among the users based on the determinedinfluence. First, an analysis apparatus 104 may obtain user data (e.g.,user data 1 132, user data x 134) for users in the social networks. Forexample, analysis apparatus 104 may use application-programminginterfaces (APIs) with the social networks to obtain the user data fromthe social networks. Analysis apparatus 104 may also store the user datain a user data repository 112 for subsequent retrieval, update, and/oruse.

Next, analysis apparatus 104 may calculate one or more influence scores146 for each connected pair of users in a social network. Each influencescore may represent the influence of one user on another user. As aresult, influence scores 146 for a pair of users may include a firstinfluence score representing a first level of influence of a first userin the pair on the second user in the pair, as well as a secondinfluence score representing a second level of influence of the seconduser on the first user.

To calculate influence scores 146 for the pair of users, analysisapparatus 104 may create a set of influence vectors 142 for each user inthe pair. Influence vectors 142 may include an activity vector thatrepresents the user's level and type of activity within the socialnetwork, as well as a profile vector that represents the user'sbackground and/or demographic information. For example, the activityvector may include shares, posts, comments, likes, tags, follows, and/orother social network activity by the user. The social network activitymay also be related to a topic such as a sports team, a product, aservice, a person, an academic subject, a place, an activity, and/or anevent. On the other hand, the profile vector may include demographicand/or background information such as the user's age, location,ethnicity, language, education, occupation, and/or family status. Afterinfluence vectors 142 are created from user data for the user from userdata repository 112, influence vectors 142 may be stored with the userdata in user data repository 112 for subsequent retrieval and use.

Analysis apparatus 104 may also calculate a set of angles 144 betweencorresponding influence vectors 142 from the pair of users. For example,analysis apparatus 104 may calculate a first angle between the activityvectors of the users and a second angle between the profile vectors ofthe users. A smaller and/or positive angle may indicate a higher levelof similarity and/or influence between the users, while a larger and/ornegative angle may indicate a lower level of similarity and/or influencebetween the users.

Analysis apparatus 104 may then use angles 144 to calculate influencescores 146. In particular, analysis apparatus 104 may use a set ofweights to normalize angles 144 and/or combine angles 144 into influencescores 146 representing different levels of influence between the users.A positive influence score may represent the ability of one user toinfluence another user, while a negative influence score may representthe user's lack of influence on the other user.

For example, the activity vector for a user may be represented by thefollowing dimensions:

<likes, shares, comments, posts>

As mentioned above, the dimensions in the activity vector may beassociated with a topic. In other words, the activity vector mayrepresent the user's social network activity (e.g., likes, shares,comments, posts) with respect to the topic. Moreover, the social networkactivity may be related to five interactions within a social network,represented as t1, t2, t3, t4, and t5.

Each dimension in the activity vector may also be associated with a setof weights. The user's lack of participation in a dimension may be givena weight of zero, while the user's participation in a dimension may beassociated with a positive or negative weight, depending on thepositivity or negativity associated with the user's participation.Because both likes and shares represent positive interactions, theuser's like of the interaction may have a weight of 1, while the user'sshare of the interaction may have a higher weight of 5 because the useris more involved with and/or interested in the topic and/or interaction.On the other hand, comments and posts may have weights of 3 for positiveparticipation (e.g., positive discussion of the topic) and weights of −3for negative participation (e.g., negative discussion of the topic).

A pair of users may have a first user that has liked t1 and t3, sharedt1, commented positively about t3, and posted positively about t3. Thesecond user in the pair may have liked t1, t3, and t5; shared t1 and t5;and posted positively about t2. The first user may thus have thefollowing activity vector:

-   -   1*like(t1)+0*like(t2)+1*like(t3)+0*like(t4)+0*like(t5)+5*share(t1)+0*share(t2)+0*share(t3)+0*share(t4)+0*share(t5)+0*comment(t1)+0*comment(t2)+3*comment(t3)+0*comment(t4)+0*comment(t5)+0*post(t1)+0*post(t2)+3*post(t3)+0*post(t4)+0*post(t5)        Similarly, the second user may have the following activity        vector:    -   1*like(t1)+0*like(t2)+1*like(t3)+0*like(t4)+1*like(t5)+5*share(t1)+0*share(t2)+0*share(t3)+0*share(t4)+5*share(t5)+0*comment(t1)+0*comment(t2)+0*comment(t3)+0*comment(t4)+0*comment(t5)+0*post(t1)+3*post(t2)+0*post(t3)+0*post(t4)+0*post(t5)

The angle between the activity vectors of the users may indicate thesimilarity of the users' social network activities with respect to thetopic. In addition, the angle may be calculated using the dot product ofthe activity vectors. More specifically, the angle's cosine may be thedot product of the activity vectors divided by the product of themagnitudes of the activity vectors:

-   -   (1+25)/(sqrt(1+1+25+9+9)*sqrt(1+1+25+25+9))

=26/(sqrt(45)+sqrt(61))=0.496251

The angle may then be obtained as the arccosine of 0.496251, or 60.24degrees.

Continuing with the example, the profile vector for a user may berepresented by the following dimensions:

-   -   <{country, state, city}, ethnicity, languages known, university        name, educational degree, workplace, profession, family status>        In addition, each dimension of the profile vector may be mapped        to a numeric identifier. As a result, the profile vector for the        first user may include the following:    -   <{1, 617, 2}, 3, 1, 3, 4, 23, 4, 5, 3, 2>        The dimensions of the first user's profile vector may correspond        to the following:

Country—1 (e.g., United States)

State—617 (e.g., Massachusetts)

City—2 (e.g., Boston)

Ethnicity—3

Languages—1 (e.g., English), 3 (e.g., German), 4 (e.g., Italian)

University—23

Educational Degree—4 (e.g., PhD)

Workplace—5

Profession—3

Family Status—2 (e.g., Single)

The profile vector for the second user may include the following:

<{1, 857, 4}, 1, 4, 5, 3, 12, 4, 5, 4, 2>

Within the profile vectors, the first three dimensions representinglocation are placed in brackets. The bracketed numbers may be used togenerate a unique identifier for a particular location, such as acombination of a city, state, and country.

As with the activity vectors, the angle of the profile vectors may becalculated using the dot product of the vectors. The angle may then benormalized using a set of factors, such as age and/or number of years ofprofessional experience. More specifically, the differences in valuesassociated with the factors may be combined with a set of weights tonormalize the angle. If the first and second users have ages of 29 and40 and two and 11 years of experience, respectively, the respectivedifferences between the ages and years of professional experience may be−11 and −9 from the first user to the second user and 11 and 9 from thesecond user to the first user. The differences in age and years ofprofessional experience may then be combined using weights of 0.8 and0.2, respectively, to obtain the following normalization values:

0.8*age_difference+0.2*professional_experience_difference

-   -   =−10.6 from the first user to the second user, and    -   =10.6 from the second user to the first user.        The weights may indicate that the age difference between the        users affects the angles four times as much as the difference in        years of professional experience. If the angle between the        profile vectors is calculated to be 34.5 degrees, the angle may        be normalized to be −365.7 and 365.7 for the first and second        users, respectively.

In addition, the weights may be calculated using training data thatincludes both user data associated with dimensions of the activity andprofile vectors and measured levels of influence between pairs of users.Such training data may be collected using surveying techniques and usedto train a statistical model for calculating influence scores 146 frominfluence vectors 142 and angles 144.

After angles 144 between the activity and profile vectors arecalculated, angles 144 may be combined with another set of weights intoan influence score for each user in the pair. Influence scores 146 mayalso be normalized to have a maximum value of positive or negative 1. Inparticular, weights of 0.5 and 0.5 may be applied to the angles obtainedabove to produce the following influence scores 146:

0.5*60.24+0.5*(−365.7)=−152.73 for the first user, and

0.5*60.24+0.5*365.7=212.97 for the second user.

Influence scores 146 may then be normalized by a factor of 300 toproduce the following normalized influence scores 146:

−152.73/300=−0.51 for the first user, and

212.97/300=0.71 for the second user.

Such influence scores 146 may indicate that the second user has asignificant influence on the first user, while the first user has littleto no influence on the second user.

As with the weights used in normalization of the angle between theprofile vectors, the weights used to calculate influence scores 146 mayrepresent the proportionate effects of angles 144 on influence scores146. Such weights may also be obtained using training data, which mayinclude activity data, profile data, and/or measurements of influence(e.g., user actions) associated with the activity and/or profile data. Alogistic regression technique, support vector machine, stochasticgradient descent technique, random forest technique, and/or otherlearning technique may be used to train the statistical model and/orupdate the weights used in calculating influence scores 146.

After influence scores 146 are calculated for pairs of users from thesocial networks, a modeling apparatus 106 in interaction-managementframework 102 may construct an influence graph 120 from influence scores146. In particular, modeling apparatus 106 may create a first node ininfluence graph 120 that represents the first user in each pair and asecond node in influence graph 120 that represents the second user inthe pair. Modeling apparatus 106 may then use influence scores 146between the users as edge weights of directed edges between the firstand second nodes. For example, modeling apparatus 106 may use theinfluence score for the first user as the edge weight for a directededge from the first node to the second node and the influence score forthe second user as the edge weight for a directed edge from the secondnode to the first node.

Modeling apparatus 106 may also store influence graph 120 as a set ofnodes 136, edges 138 between pairs of nodes 136, and edge weights 140 ofindividual edges 138 in a model repository 110. Influence graph 120 maythus model the relationships among the users, as well as the level ofinfluence each user may have on every other user with whom that user hasa relationship. Influence graph 120 is discussed in further detail belowwith respect to FIG. 2.

Finally, a management apparatus 108 in interaction-management framework102 may use influence graph 120 to facilitate interaction among theusers. More specifically, management apparatus 108 may identify a paththrough influence graph 120 and use the path in targeting 122 users onthe path. For example, management apparatus 108 may use path-findingtechniques such as Dijkstra's shortest path, max-flow min-cut, minimumspanning tree, and/or belief propagation to identify influence-basedpaths among the users. Management apparatus 108 may then use the pathsto perform targeting 122 of influential users on the paths with goods,services, ideas, and/or topics. In turn, the users may relay the goods,services, ideas, and/or topics to other users on the paths, thuspropagating targeting 122 to the other users. Analysis apparatus 104,modeling apparatus 106, and/or management apparatus 108 may also analyzeinfluence scores 146 and/or influence graph 120 to identify attributesassociated with influential users and/or patterns of influence acrossthe users.

Because interaction-management framework 102 identifies influence-basedconnections in the social networks, interaction-management framework 102may encourage user adoption of ideas and/or topics more efficientlyand/or effectively than indiscriminate and/or random targeting 122 ofusers in the social networks may. Moreover, the creation and use ofdirectional influence scores 146 between pairs of users in the socialnetworks may allow interaction-management framework 102 to identifyinfluence-based paths across the social networks and reach more usersthan techniques that perform user targeting based on measurements ofinfluence for individual users.

Those skilled in the art will appreciate that the system of FIG. 1 maybe implemented in a variety of ways. More specifically, analysisapparatus 104, modeling apparatus 106, management apparatus 108, modelrepository 110, and user data repository 112 may execute on the samesystem or on different systems. For example, analysis apparatus 104,modeling apparatus 106, management apparatus 108, model repository 110,and user data repository 112 may be provided by a single physicalmachine, multiple computer systems, one or more virtual machines, agrid, one or more databases (e.g., relational databases, graphdatabases, etc.), one or more filesystems, and/or a cloud computingsystem.

FIG. 2 shows an exemplary influence graph (e.g., influence graph 120 ofFIG. 1) in accordance with the disclosed embodiments. As shown in FIG.2, the influence graph includes a set of nodes representing users202-214, as well as a set of directed edges representing relationshipsand/or levels of influence between pairs of users 202-214 in theinfluence graph.

Each directed edge may have an edge weight that represents the influenceof the user corresponding to the tail of the directed edge on the usercorresponding to the head of the directed edge. For example, user 202may have directed edges to users 204 and 206 with edge weights of −0.22and −0.35, respectively. User 204 may have directed edges to users 202,208, and 210 with edge weights of 0.41, −0.69, and 0.5, respectively.User 206 may have directed edges to users 202 and 208 with edge weightsof −0.28 and −0.30, respectively. User 208 may have directed edges tousers 204, 206 and 212 with edge weights of 0.82, 0.65, and 0.76,respectively. User 210 may have a directed edge to user 204 with an edgeweight of 0.5. User 212 may have directed edges to users 208 and 214with edge weights of 0.22 and 0.56, respectively. User 214 may have adirected edge to user 212 with an edge weight of −0.08.

As mentioned above, edge weights of directed edges in the influencegraph may correspond to influence scores (e.g., influence scores 146 ofFIG. 1) between pairs of users 202-214 connected by the directed edges.The influence scores may be based on the similarities of connectedusers, in both behavior and interests, as well as the users'backgrounds, which may be used to infer the users' relative reputationsand/or levels of influence on one another. A higher edge weight mayindicate a higher level of influence of a user on another user, while alower edge weight may indicate a lower level of influence of the user onanother user. For example, edge weights in the influence graph mayindicate that users 204, 208, 210, and 212 have relatively high levelsof influence, while users 202, 206, and 214 have relatively low levelsof influence.

The edge weights may then be used to identify a path through theinfluence graph, which in turn may be used to target users 202-214and/or facilitate the positive discussion and/or promotion of goods,services, and/or ideas among users 202-214. For example, users 202-214may be exposed to a topic by targeting user 208 with sponsored content,an event, and/or a promotion containing the topic. The relatively highlevel of influence of user 208 on other users 204, 206 and 212 to whomuser 208 is connected may encourage the discussion and/or use of thetopic by the other users. Within the other users, user 204 may haveenough influence on users 202 and 210 to spread the topic effectively tousers 202 and 210. Similarly, user 212 may have enough influence on user214 to spread the topic to user 214.

Consequently, the influence graph may increase the effectiveness and/orefficiency of user targeting by entities (e.g., companies,organizations, other users, etc.) performing the targeting. For example,the influence graph may enable the propagation of a topic across theentire set of users 202-214 through the targeting of a single user 208.On the other hand, conventional user targeting techniques that do notconsider relationships and/or levels of influence between individualpairs of users 202-214 may target multiple users (e.g., first user 204,then user 212) to attain the same reach across the entire set of users202-214.

FIG. 3 shows a flowchart illustrating the process of facilitating userinteraction in accordance with the disclosed embodiments. In one or moreembodiments, one or more of the steps may be omitted, repeated, and/orperformed in a different order. Accordingly, the specific arrangement ofsteps shown in FIG. 3 should not be construed as limiting the scope ofthe technique.

Initially, user data for a first user and a second user connected to thefirst user in a social network is obtained (operation 302). The userdata may include profile (e.g., demographic, background) data for theusers, as well as data associated with the users' behavior (e.g., posts,likes, comments, shares, follows, tags, topics, etc.) on the socialnetwork. Next, the user data is used to calculate one or more influencescores between the first and second users (operation 304). The influencescores may include a first influence score representing a first level ofinfluence of the first user on the second user, as well as a secondinfluence score representing a second level of influence of the seconduser on the first user. Calculation of influence scores between pairs ofusers is discussed in further detail below with respect to FIG. 4.

An influence graph of the users is also constructed. In particular, afirst node representing the first user is created (operation 306), and asecond node representing the second user is created (operation 308).Next, the influence score(s) are used as edge weights of directed edgesbetween the first and second nodes (operation 310). For example, theedge weight of the directed edge from the first node to the second nodemay be set to the influence score of the first user on the second user.Similarly, the edge weight of the directed edge from the second node tothe first node may be set to the influence score of the second user onthe first user.

Additional user data may be available (operation 312) for other users inthe social network and/or other social networks. If the user data isavailable, the user data is obtained for each connected pair of users ina social network (operation 302), influence scores are calculated usingthe user data (operation 304), and the influence graph is updated withnodes representing the users and edge weights representing the users'respective influence scores (operations 306-310).

After the influence graph is populated with users and influence scores,the influence graph is used to facilitate interaction among the users(operation 314). For example, a path through the influence graph may beidentified using a path-finding technique such as Dijkstra's shortestpath, max-flow min-cut, minimum spanning tree, and/or beliefpropagation. The path may also be used to target one or more users onthe path. The targeted users may have relatively high levels ofinfluence on other users and spread the topic with which the users aretargeted to the other users. In turn, some or all of the other users mayexert relatively high levels of influence and propagate the topic toanother set of users, thus allowing the topic to reach most or all ofthe users on the path.

The influence graph may continue to be used (operation 316) tofacilitate interaction and/or propagate ideas and/or messages among theusers. If the influence graph is to be used, the influence graph mayperiodically be updated with additional user data (operation 312). Theadditional user data may be related to new users in the social networksand/or existing users in the social networks and influence graph. Forexample, additional user data may be available when a user joins asocial network and/or when an existing user in a social network updateshis/her profile or performs an action on the social network. Theadditional user data may also reflect trends and/or the spreading oftopics in the social network. The user data may be used to update theinfluence graph (operation 302-310), and the influence graph may be usedto facilitate interaction among the users (operation 314). The influencegraph may thus continue to be used (operation 316) until targeting ofthe users ceases and/or levels of influence across the social networksare no longer assessed.

FIG. 4 shows a flowchart illustrating the process of calculating a setof influence scores between a pair of users in accordance with thedisclosed embodiments. In one or more embodiments, one or more of thesteps may be omitted, repeated, and/or performed in a different order.Accordingly, the specific arrangement of steps shown in FIG. 4 shouldnot be construed as limiting the scope of the technique.

Initially, activity and profile vectors are created for the first andsecond users in the pair (operation 402). For example, an activityvector and a profile vector may be created for each user in the pair.The activity vector may include dimensions associated with topics,shares, posts, comments, tags, follows, likes, and/or other useractivities in a social network. In addition, the activity vector for auser may include measurements of the user's actions in the socialnetwork, as well as measurements of actions of other users that may berelated to the user's actions (e.g., likes, comments, or re-postsassociated with the user's posts). The profile vector may includedimensions associated with age, location, ethnicity, language,education, occupation, family status, and/or other background ordemographic information for the users.

Next, a first angle between the activity vectors and a second anglebetween the profile vectors are calculated (operation 404). Each anglemay be calculated by obtaining the dot product of the correspondingvectors, dividing the dot product by the product of the magnitudes ofthe vectors to obtain the cosine of the angle, and then calculating thearccosine of the cosine. Smaller and/or positive angles may representhigher levels of similarity and/or influence between the users, whilelarger and/or negative angles may represent lower levels of similarityand/or influence between the users.

The first and/or second angles may also be normalized (operation 406).For example, the angles may be normalized using a set of factors and/ora set of weights to have values of no more than 1 and no less than −1.The factors and/or weights may also be used to adjust the level ofinfluence each user in the pair may have on the other user in the pair.

Finally, the first and second angles are combined into the influencescores (operation 408). As with normalization of the angles, a set ofweights may be used to combine the angles into the influence scoresand/or adjust the relative effect of each type of influence vector(e.g., profile vector, activity vector) on the influence scores. Theweights may be included in a statistical model that is trained usingtraining data, which may contain both user data and measurements ofinfluence related to the user data. The weights may also be updated asmeasurements of influence between the users in the pair are obtained andused to verify the accuracy of the users' influence scores. Similarly,the influence scores may be updated as the users' respective levels ofinfluence on one another change with the users' behaviors and/orbackgrounds.

FIG. 5 shows a computer system 500. Computer system 500 includes aprocessor 502, memory 504, storage 506, and/or other components found inelectronic computing devices. Processor 502 may support parallelprocessing and/or multi-threaded operation with other processors incomputer system 500. Computer system 500 may also include input/output(I/O) devices such as a keyboard 508, a mouse 510, and a display 512.

Computer system 500 may include functionality to execute variouscomponents of the present embodiments. In particular, computer system500 may include an operating system (not shown) that coordinates the useof hardware and software resources on computer system 500, as well asone or more applications that perform specialized tasks for the user. Toperform tasks for the user, applications may obtain the use of hardwareresources on computer system 500 from the operating system, as well asinteract with the user through a hardware and/or software frameworkprovided by the operating system.

In one or more embodiments, computer system 500 provides a system forfacilitating user interaction. The system may include an analysisapparatus that obtains user data for a first user and a second userconnected to the first user in a social network and uses the user datato calculate one or more influence scores between the first and secondusers. The system may also include a modeling apparatus that constructsan influence graph of a set of users comprising the first and secondusers. To construct the influence graph, the modeling apparatus maycreate a first node representing the first user and a second noderepresenting the second user. The modeling apparatus may then use theone or more influence scores as edge weights of directed edges betweenthe first and second nodes. Finally, the system may include a managementapparatus that uses the influence graph to facilitate interaction amongthe users.

In addition, one or more components of computer system 500 may beremotely located and connected to the other components over a network.Portions of the present embodiments (e.g., analysis apparatus, modelingapparatus, management apparatus, etc.) may also be located on differentnodes of a distributed system that implements the embodiments. Forexample, the present embodiments may be implemented using a cloudcomputing system that determines influence across social networks ofremote users and uses the influence to facilitate interaction and/orpropagation of information among the users.

The foregoing descriptions of various embodiments have been presentedonly for purposes of illustration and description. They are not intendedto be exhaustive or to limit the present invention to the formsdisclosed. Accordingly, many modifications and variations will beapparent to practitioners skilled in the art. Additionally, the abovedisclosure is not intended to limit the present invention.

What is claimed is:
 1. A computer-implemented method for facilitatinguser interaction between users in an online social network, comprising:obtaining, at a server, user data for a first user and a second userconnected to the first user in a social network, wherein the servercomprises a processor and a memory; storing the obtained user data in apartitioned user-data portion of the memory; accessing the user datafrom the partitioned user-data portion of the memory; using the accesseduser data to calculate, using the processor, one or more influencescores between the first and second users, wherein an influence scorebetween a first user and a second user is based on: first determining aninfluence vector for each user based on their activities within thesocial network in association with a topic, and subsequently determininga similarity between the first user's activities and the second user'sactivities with respect to the topic based on the angle between the twoinfluence vectors; constructing, using the processor, an influence graphof a set of users comprising the first and second users by: creating afirst node representing the first user; creating a second noderepresenting the second user; and using the one or more influence scoresas edge weights of directed edges between the first and second nodes;storing the constructed influence-graph in a partitioned influence-graphportion of the memory; accessing the influence-graph from thepartitioned influence-graph portion of the memory; and using theinfluence graph to facilitate interaction among the users, wherein theinteraction involves communication between the users of the onlinesocial network using the Internet.
 2. The computer-implemented method ofclaim 1, wherein using the one or more influence scores to facilitateinteraction between the first and second users involves: identifying apath through the influence graph; and using the path to target one ormore of the users on the path.
 3. The computer-implemented method ofclaim 1, wherein using the user data to calculate one or more influencescores between the first and second users involves: creating, from theuser data, a first influence vector for the first user and a secondinfluence vector for the second user; calculating an angle between thefirst and second influence vectors; and calculating the one or moreinfluence scores based on the angle.
 4. The computer-implemented methodof claim 1, wherein the first and second influence vectors are based onthe: activity vectors; and profile vectors.
 5. The computer-implementedmethod of claim 4, wherein the activity vector in association with atopic is based on at least one of: a share; a post; a comment; a tag; afollow; and a like.
 6. The computer-implemented method of claim 4,wherein the profile vector is associated with at least one of: an age; alocation; an ethnicity; a language; an education; an occupation; and afamily status.
 7. The computer-implemented method of claim 4, whereincalculating the one or more influence scores based on the angleinvolves: calculating a first angle using the activity vectors;calculating a second angle using the profile vectors; and combining thefirst and second angles into an influence score.
 8. Thecomputer-implemented method of claim 7, wherein calculating the one ormore influence scores based on the angle further involves: normalizingat least one of the first and second angles prior to combining the firstand second angles into the influence score.
 9. The computer-implementedmethod of claim 1, wherein the one or more influence scores comprise: afirst influence score representing a first level of influence of thefirst user on the second user; and a second influence score representinga second level of influence of the second user on the first user.
 10. Asystem for facilitating user interaction between users in an onlinesocial network, comprising: an analysis apparatus configured to: obtain,at a server, user data for a first user and a second user connected tothe first user in a social network, wherein the server comprises aprocessor and a memory; store the obtained user data in a partitioneduser-data portion of the memory; access the user data from thepartitioned user-data portion of the memory; and use the accessed userdata to calculate, using the processor, one or more influence scoresbetween the first and second users, wherein an influence score between afirst user and a second user is based on: first determining an influencevector for each user based on their activities within the social networkin association with a topic, and subsequently determining a similaritybetween the first user's activities and the second user's activitieswith respect to the topic based on the angle between the two influencevectors; a modeling apparatus configured to: construct, using theprocessor, an influence graph of a set of users comprising the first andsecond users by: creating a first node representing the first user;creating a second node representing the second user; and using the oneor more influence scores as edge weights of directed edges between thefirst and second nodes; storing the constructed influence-graph in apartitioned influence-graph portion of the memory; accessing theinfluence-graph from the partitioned influence-graph portion of thememory; and a management apparatus configured to use the influence graphto facilitate interaction among the users, wherein the interactioninvolves communication between the users of the online social networkusing the Internet.
 11. The system of claim 10, wherein using the one ormore influence scores to facilitate interaction between the first andsecond users involves: identifying a path through the influence graph;and using the path to target one or more of the users on the path. 12.The system of claim 10, wherein using the user data to calculate one ormore influence scores between the first and second users involves:creating, from the user data, a first influence vector for the firstuser and a second influence vector for the second user; calculating anangle between the first and second influence vectors; and calculatingthe one or more influence scores based on the angle.
 13. The system ofclaim 10, wherein the first and second influence vectors are based onthe: activity vectors; and profile vectors.
 14. The system of claim 13,wherein calculating the one or more influence scores based on the angleinvolves: calculating a first angle using the activity vectors;calculating a second angle using the profile vectors; normalizing atleast one of the first and second angles; and combining the first andsecond angles into an influence score.
 15. The system of claim 10,wherein the one or more influence scores comprise: a first influencescore representing a first level of influence of the first user on thesecond user; and a second influence score representing a second level ofinfluence of the second user on the first user.
 16. A non-transitorycomputer-readable storage medium storing instructions that when executedby a computer cause the computer to perform a method for facilitatinguser interaction between users in an online social network, the methodcomprising: obtaining, at a server, user data for a first user and asecond user connected to the first user in a social network, wherein theserver comprises a processor and a memory; storing the obtained userdata in a partitioned user-data portion of the memory; accessing theuser data from the partitioned user-data portion of the memory; usingthe accessed user data to calculate, using the processor, one or moreinfluence scores between the first and second users, wherein aninfluence score between a first user and a second user is based on:first determining an influence vector for each user based on theiractivities within the social network in association with a topic, andsubsequently determining a similarity between the first user'sactivities and the second user's activities with respect to the topicbased on the angle between the two influence vectors; constructing,using the processor, an influence graph of a set of users comprising thefirst and second users by: creating a first node representing the firstuser; creating a second node representing the second user; and using theone or more influence scores as edge weights of directed edges betweenthe first and second nodes; storing the constructed influence-graph in apartitioned influence-graph portion of the memory; accessing theinfluence-graph from the partitioned influence-graph portion of thememory; and using the influence graph to facilitate interaction amongthe users, wherein the interaction involves communication between theusers of the online social network using the Internet.
 17. Thenon-transitory computer-readable storage medium of claim 16, whereinusing the user data to calculate one or more influence scores betweenthe first and second users involves: creating, from the user data, afirst influence vector for the first user and a second influence vectorfor the second user; calculating an angle between the first and secondinfluence vectors; and calculating the one or more influence scoresbased on the angle.
 18. The non-transitory computer-readable storagemedium of claim 16, wherein the first and second influence vectors arebased on the: activity vectors; and profile vectors.
 19. Thenon-transitory computer-readable storage medium of claim 18, whereincalculating the one or more influence scores based on the angleinvolves: calculating a first angle using the activity vectors;calculating a second angle using the profile vectors; normalizing atleast one of the first and second angles; and combining the first andsecond angles into an influence score.
 20. The non-transitorycomputer-readable storage medium of claim 16, wherein the one or moreinfluence scores comprise: a first influence score representing a firstlevel of influence of the first user on the second user; and a secondinfluence score representing a second level of influence of the seconduser on the first user.